class Solution {
public:
    string reverseWords(string s) {
        // 倒序遍历
        string ret;
        for(int i = s.size() - 1; i >= 0; i--)
        {
            if(s[i] == ' ')
                continue;

            // 确定一个单词的边界，则将其添加至单词列表 ret
            int start = i;
            while(i >= 0 && s[i] != ' ')
                i--;
            
            ret += s.substr(i + 1, start - i) + ' ';
        }
        ret.pop_back();
        return ret;


        // reverse(s.begin(), s.end());
        // string ret;
        // int n = s.size();
        // for(int i = 0; i < n; i++)
        // {
        //     if(s[i] == ' ')
        //         continue;
        //     string tmp;
        //     while(i < n && s[i] != ' ')
        //     {
        //         tmp += s[i];
        //         i++;
        //     }
        //     reverse(tmp.begin(), tmp.end());
        //     ret += tmp + ' ';
        // }
        // ret.pop_back();
        // return ret;
    }
};